package com.moss.cloud.common.flow.executor;

import com.moss.cloud.common.core.exception.BaseException;
import com.moss.cloud.common.core.exception.SystemErrorType;
import com.moss.cloud.common.flow.model.NodeTask;
import com.moss.cloud.common.flow.operation.StateOperation;
import com.moss.cloud.common.flow.operation.factory.StateFactory;

/**
 * 任务执行器
 *
 * @author 瑾年
 * @date 2024年4月15日
 */
public class TaskExecutor {
    public static void process(NodeTask nodeTask) {
        // 执行审批逻辑
        StateOperation operation = StateFactory.stateType(nodeTask.getStatus())
                .orElseThrow(() -> new BaseException(SystemErrorType.TASK_STATUS_MATCH));
        operation.stateProcess(nodeTask);
    }
}
